<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-us" xml:lang="en-us">
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>tr-140-1-2-0.xml</title>
  <style>
    code{white-space: pre-wrap;}
    span.smallcaps{font-variant: small-caps;}
    div.columns{display: flex; gap: min(4vw, 1.5em);}
    div.column{flex: auto; overflow-x: auto;}
    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
    /* The extra [class] is a hack that increases specificity enough to
       override a similar rule in reveal.js */
    ul.task-list[class]{list-style: none;}
    ul.task-list li input[type="checkbox"] {
      font-size: inherit;
      width: 0.8em;
      margin: 0 0.8em 0.2em -1.6em;
      vertical-align: middle;
    }
  </style>
  <!-- Sidebar ToC styles -->

  <style>
  @media screen and (min-width: 60em) {
      body {
          display: flex;
          align-items: stretch;
          margin: 0px;
          /* XXX this is experimental; may need to insert zero-width spaces */
          overflow-wrap: break-word;
      }

      #main {
          flex: 4 2 auto;
          overflow: auto;
          order: 2;
          padding: 5px;
      }

      #TOC {
          position: sticky;
          order: 1;
          flex: 1 0 auto;
          margin: 0 0;
          top: 0px;
          left: 0px;
          height: 100vh;
          line-height: 1.4;
          resize: horizontal;
          font-size: larger;
          overflow: auto;
          border-right: 1px solid #73AD21;
          padding: 5px;
          max-width: 20%;
      }

      #TOC ul {
          margin: 0.35em 0;
          padding: 0 0 0 1em;
          list-style-type: none;
      }

      #TOC ul ul {
          margin: 0.25em 0;
      }

      #TOC ul ul ul {
          margin: 0.15em 0;
      }

      #TOC {
          z-index: 1;
      }
  }
  </style>

  <!-- ToC expansion and contraction script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var expandables = document.getElementsByClassName('expandable');
      for (i = 0; i < expandables.length; i++) {
          expandables[i].addEventListener('click', function() {
              this.parentElement.querySelector('.collapsed').classList
                  .toggle('expanded');
              this.classList.toggle('collapsible');
          });
      }
  });
  </script>

  <!-- ToC expansion and contraction styles -->

  <style>
  .expandable {
      cursor: pointer;
      user-select: none;
      display: list-item;
      /* Circled Plus + non-breakable space */
      list-style-type: "\2295\A0";
  }

  .collapsible {
      /* Circled Minus + non-breakable space */
      list-style-type: "\2296\A0";
  }

  .collapsed {
      display: none;
  }

  .expanded {
      display: grid; /* needed by the 'order' property */
  }
  </style>

  <!-- ToC sorting script (works for object names and profile headers) -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      /* 'A.B.' -> {prefix: '', name: 'A.B.', 'version': ''}
         '_Baseline:1' -> {prefix: '_', name: 'Baseline', version: '1'} */
      var regex = /^(?<prefix>_?)(?<name>[^:]*)(:?)(?<version>\d*)/;
      var lists = document.getElementsByClassName('ordered');
      for (var i = 0; i < lists.length; i++) {
          var items = lists[i].children;
          var temp = [];
          for (var j = 0; j < items.length; j++) {
              /* this assumes that the first child contains the text */
              temp.push([j, items[j].children[0].innerText]);
          }
          temp.sort((a, b) => {
              /* 'Notation' (which is used for profiles) must come first */
              var a1 = a[1] == 'Notation' ? ' Notation' : a[1];
              var b1 = b[1] == 'Notation' ? ' Notation' : b[1];
              var a1_groups = a1.match(regex).groups;
              var b1_groups = b1.match(regex).groups;
              var a1_tuple =  [
                  a1_groups.name.toLowerCase() + (a1_groups.prefix || '~'),
                  parseInt(a1_groups.version || 0)];
              var b1_tuple =  [
                  b1_groups.name.toLowerCase() + (b1_groups.prefix || '~'),
                  parseInt(b1_groups.version || 0)];
              return a1_tuple < b1_tuple ? -1 : a1_tuple > b1_tuple ? 1 : 0;
          });
          temp.forEach((order_text, j) => {
              var k = order_text[0];
              items[k].style.order = j;
          });
      }
  });
  </script>

  <!-- Automatic title generation (from anchor ids) script
       XXX only works for non-deprecated object parameters and doesn't
           show correct full paths; should get rid of it? -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var pars = document.getElementsByClassName('parameter');
      var regex = /\w\.\w+:[0-9.]+\./;
      for (var i = 0; i < pars.length; i++) {
          if (pars[i].firstElementChild && pars[i].firstElementChild.
                  firstElementChild) {
              pars[i].firstElementChild.title =
                  pars[i].firstElementChild.firstElementChild.id.
                  replace(regex, '');
          }
      }
  });
  </script>

  <!-- Automatic on-hover link generation script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var hoverlink = null;

      var anchors = document.querySelectorAll('td span[id]:not(:empty)');
      for (var i = 0; i < anchors.length; i++) {
        var cell = anchors[i].parentElement;

        cell.addEventListener('mouseenter', event => {
          var target = event.target;
          var anchor = target.querySelector('span[id]:not(:empty)');

          /* derive the item type from the row's first class item,
           * which might have a leading 'deprecated-' etc. and
           * might also contain additional hyphens */
          var itemType = (target.parentElement.classList.item(0) || 'item').
              replace(/^\w+-/, '').replace(/-/g, ' ');

          if (hoverlink) {
            hoverlink.remove();
            hoverlink = null;
          }

          hoverlink = document.createElement('a');
          hoverlink.href = '#' + anchor.id;
          hoverlink.className = 'hoverlink';
          hoverlink.title = 'Permalink to this ' + itemType;
          target.appendChild(hoverlink);
        });

        cell.addEventListener('mouseleave', () => {
          if (hoverlink) {
            hoverlink.remove();
            hoverlink = null;
          }
        });
      }
  });
  </script>

  <!-- Hoverlink styles -->

  <style>
  :root {
      --hoverlink-size: 0.9em;
  }

  .hoverlink {
      text-decoration: none;
  }

  .hoverlink::after {
      position: absolute;
      display: inline-block;
      content: "";
      width: var(--hoverlink-size);
      height: var(--hoverlink-size);
      background-size: var(--hoverlink-size) var(--hoverlink-size);
      background-image: url();
  }
  </style>

  <!-- Table body expansion and contraction script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var showables = document.getElementsByClassName('showable');
      for (var i = 0; i < showables.length; i++) {
          var showable = showables[i];
          showable.addEventListener('click', function() {
              this.classList.toggle('show');
          });
      }

      showables = document.getElementsByClassName('showable2');
      for (var i = 0; i < showables.length; i++) {
          var showable = showables[i];
          showable.addEventListener('click', function(event) {
              this.classList.toggle('show2');
              event.stopPropagation();
          });
      }
  });
  </script>

  <!-- Table body expansion and contraction styles -->

  <style>
  .chevron {
      color: var(--link-color);
      cursor: pointer;
  }

  .chevron::before {
      /* Single Right-Pointing Angle Quotation Mark */
      content: "\00203A ";
  }

  .chevron .click::after {
      content: " Click to show/hide...";
  }

  .hide {
      display: none;
  }

  .show tr {
      display: table-row;
  }

  .show td div, .show ul, .show ol {
      display: block;
  }

  .show td span {
      display: inline;
  }

  .show2 *.hide {
      display: none;
  }

  </style>

  <!-- Global styles (that affect the entire document) -->

  <style>
  /* light mode support */
  @media (prefers-color-scheme: light) {
    :root {
      --background-color: white;
      --foreground-color: black;
      --diff-background-color: aliceblue;
      --link-color: blue;
      --parameter-color: white;
      --object-color: #ffff99;
      --command-color: #66cdaa;
      --event-color: #66cdaa;
      --argument-container-color: silver;
      --argument-object-color: pink;
      --argument-parameter-color: #ffe4e1;
      --mountable-object-color: #b3e0ff;
      --mountpoint-object-color: #4db8ff;
      --stripe-direction: 90deg;
      --stripe-stop-point-1: 1%;
      --stripe-stop-point-2: 2%;
      --stripe-color-deprecated: #eeeeee;
      --stripe-color-obsoleted: #dddddd;
      --stripe-color-deleted: #cccccc;
    }
  }

  /* dark mode support */
  @media (prefers-color-scheme: dark) {
    :root {
      --background-color: black;
      --foreground-color: white;
      --diff-background-color: #0f0700;
      --link-color: lightblue;
      --parameter-color: black;
      --object-color: #bbbb44;
      --command-color: #56bd9a;
      --event-color: #56bd9a;
      --argument-container-color: #777777;
      --argument-object-color: #dfa0ab;
      --argument-parameter-color: #bfa4a1;
      --mountable-object-color: #b3e0ff;
      --mountpoint-object-color: #3da8ef;
      --stripe-color-deprecated: #555555;
      --stripe-color-obsoleted: #444444;
      --stripe-color-deleted: #333333;
    }
    .hoverlink {
      filter: invert(1);
    }
  }

  body, table {
      background-color: var(--background-color);
      color: var(--foreground-color);
      font-family: helvetica, arial, sans-serif;
      font-size: 9pt;
  }

  h1 {
      font-size: 14pt;
  }

  h2 {
      font-size: 12pt;
  }

  h3 {
      font-size: 10pt;
  }

  a:link, a:visited {
      color: var(--link-color);
  }

  sup {
      vertical-align: super;
  }

  table {
      text-align: left;
      vertical-align: top;
  }

  td, th {
      padding: 2px;
      text-align: left;
      vertical-align: top;
  }

  /* this is intended for hoverlinks */
  td span {
      padding-right: 2px;
  }

  table.middle-width {
      width: 60%;
  }

  table.full-width {
      width: 100%;
  }

  thead th {
      background-color: #999999;
  }

  table.partial-border {
      border-left-style: hidden;
      border-right-style: hidden;
      border-collapse: collapse;
  }

  table.partial-border th,
  table.partial-border td {
      border-style: solid;
      border-width: 1px;
      border-color: lightgray;
  }

  td > div,
  td > p {
      margin-block-start: 0;
      margin-block-end: 1em;
  }

  td > div:last-of-type,
  td > p:last-of-type {
      margin-block-end: 0;
  }

  .centered {
      text-align: center;
  }

  .inserted {
      color: blue;
  }

  .removed {
      color: red;
      text-decoration: line-through;
  }

  /* XXX this is a bad name */
  .diffs {
      background-color: var(--diff-background-color);
      opacity: 0.8;
  }

  .parameter {
      background-color: var(--parameter-color);
  }

  .deprecated-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .object {
      background-color: var(--object-color);
  }

  .deprecated-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .command {
      background-color: var(--command-color);
  }

  .deprecated-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .event {
      background-color: var(--event-color);
  }

  .deprecated-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-container {
      background-color: var(--argument-container-color);
  }

  .deprecated-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-parameter {
      background-color: var(--argument-parameter-color);
  }

  .deprecated-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-object {
      background-color: var(--argument-object-color);
  }

  .deprecated-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .mountable-object {
      background-color: var(--mountable-object-color);
  }

  .deprecated-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .mountpoint-object {
      background-color: var(--mountpoint-object-color);
  }

  .deprecated-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }
  </style>

  <!-- Local styles (that affect only data model tables) -->

  <style>
  /* center column 2 (Base Type) */
  .data-type-table th:nth-child(2),
  .data-type-table td:nth-child(2) {
      text-align: center;
  }

  /* center columns 3 (Write), 5 (Object Default), 6 (Version) */
  .data-model-table th:nth-child(3),
  .data-model-table td:nth-child(3),
  .data-model-table th:nth-child(5),
  .data-model-table td:nth-child(5),
  .data-model-table th:nth-child(6),
  .data-model-table td:nth-child(6)
  {
      text-align: center;
  }

  .data-model-table th,
  .data-model-table td {
      hyphenate-character: "";
  }

  /* word wrap/break column 1 (Name) */
  .data-model-table td:first-child {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 27ch;
  }

  /* word wrap/break column 2 (Base Type) */
  .data-model-table td:nth-child(2) {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 12ch;
  }

  /* word wrap/break column 3 (Write) */
  .data-model-table td:nth-child(3) {
      min-width: 1ch;
  }

  /* word wrap/break column 5 (Object Default) */
  .data-model-table td:nth-child(5) {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 12ch;
  }

  /* word wrap/break column 6 (Version) */
  .data-model-table td:nth-child(6) {
      min-width: 6ch;
  }

  /* center column 1 (Abbreviation) */
  .profile-notation-table th:nth-child(1),
  .profile-notation-table td:nth-child(1) {
      text-align: center;
  }

  /* center column 2 (Requirement) */
  .profile-requirements-table th:nth-child(2),
  .profile-requirements-table td:nth-child(2) {
      text-align: center;
  }
  </style>
</head>
<body>
<div id="main">
<table class="full-width">
<colgroup>
<col style="width: 3.0%;"></col>
<col style="width: 22.0%;"></col>
<col style="width: 50.0%;"></col>
<col style="width: 25.0%;"></col></colgroup>
<tbody>
<tr>
<td colspan="2"><a href="https://www.broadband-forum.org"><img width="100%" alt="Broadband Forum" src="https://www.broadband-forum.org/images/logo-broadband-forum.gif"></img></a></td>
<td class="centered" rowspan="1"><p></p>

<h1 id="tr-140-storageservice12" class="unnumbered unlisted">TR-140 StorageService:1.2</h1>

<h1 id="tr-140-1-2-0xml" class="unnumbered unlisted"><a href="./#tr-140-1-2-0.xml">tr-140-1-2-0.xml</a></h1></td>
<td rowspan="1"></td></tr>
<tr>
<td></td>
<td><h3 id="data-model-definition" class="unnumbered unlisted">DATA MODEL DEFINITION</h3></td></tr></tbody></table>

<h1 id="license">License</h1>

<p>Copyright (c) 2010-2017, Broadband Forum</p>

<p>Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:</p>

<ol>
<li>Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.</li>
<li>Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.</li></ol>

<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS &ldquo;AS IS&rdquo; AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>

<p>The above license is used as a license under copyright only.
Please reference the Forum IPR Policy for patent licensing terms
<a href="https://www.broadband-forum.org/ipr-policy">https://www.broadband-forum.org/ipr-policy</a>.</p>

<p>Any moral rights which are necessary to exercise under the above
license grant are also deemed granted under this license.</p>

<h1 id="data-types">Data Types</h1>

<p>The Parameters defined in this specification make use of a
limited subset of the default SOAP data types [<a href="#R.SOAP1.1">SOAP1.1</a>]. These data
types and the named data types used by this specification
are described below.</p>

<p>Note: A Parameter that is defined to be one of the named data
types is reported as such at the beginning of the Parameter’s
description via a reference back to the associated data type
definition (e.g. <em>[MACAddress]</em>). However, such parameters
still indicate their SOAP data types.</p>

<table class="full-width partial-border data-type-table">
<thead>
<tr>
<th>Data Type</th>
<th>Base Type</th>
<th>Description</th></tr></thead>
<tbody>
<tr>
<td><span id="T.boolean">boolean</span></td>
<td>-</td>
<td>Boolean, where the allowed values are <em>0</em> or <em>1</em> (or equivalently,
<em>true</em> or <em>false</em>).</td></tr>
<tr>
<td><span id="T.string">string</span></td>
<td>-</td>
<td>For strings, a minimum and maximum allowed length can be indicated
using the form <em>string(Min:Max)</em>, where <em>Min</em> and <em>Max</em> are the minimum
and maximum string length in characters. If either <em>Min</em> or <em>Max</em>
are missing, this indicates no limit, and if <em>Min</em> is missing the
colon can also be omitted, as in <em>string(Max)</em>. Multiple
comma-separated ranges can be specified, in which case the string
length will be in one of the ranges.</td></tr>
<tr>
<td><span id="T.unsignedInt">unsignedInt</span></td>
<td>-</td>
<td><p>Unsigned integer in the range <em>0</em> to <em>4294967295</em>, inclusive.</p>

<p>For some <em>unsignedInt</em> types, a value range is given using the form
<em>unsignedInt(Min:Max)</em> or <em>unsigned(Min:Max step Step)</em>, where the
<em>Min</em> and <em>Max</em> values are inclusive. If either <em>Min</em> or <em>Max</em> are
missing, this indicates no limit. If <em>Step</em> is missing,
this indicates a step of <em>1</em>. Multiple comma-separated ranges can be
specified, in which case the value will be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.Alias">Alias</span></td>
<td><a href="#T.string">string</a>(:64)</td>
<td><p>A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td></tr></tbody></table>

<h1 id="references">References</h1>

<table>
<tbody>
<tr>
<td><a href="https://www.iana.org/assignments/uri-schemes">[<span id="R.IANA-uri-schemes">IANA-uri-schemes</span>]</a></td>
<td>IANA Uniform Resource Identifier (URI) Schemes Registry, <em>Uniform Resource Identifier (URI) Schemes</em>, IANA.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/regauth/oui/tutorials/EUI64.html">[<span id="R.IEEE_EUI64">IEEE_EUI64</span>]</a></td>
<td>Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority, <em>Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority</em>, IEEE, March 1997.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3986">[<span id="R.RFC3986">RFC3986</span>]</a></td>
<td>RFC 3986, <em>Uniform Resource Identifier (URI): Generic Syntax</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4007">[<span id="R.RFC4007">RFC4007</span>]</a></td>
<td>RFC 4007, <em>IPv6 Scoped Address Architecture</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4122">[<span id="R.RFC4122">RFC4122</span>]</a></td>
<td>RFC 4122, <em>A Universally Unique IDentifier (UUID) URN Namespace</em>, IETF, 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4291">[<span id="R.RFC4291">RFC4291</span>]</a></td>
<td>RFC 4291, <em>IP Version 6 Addressing Architecture</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4632">[<span id="R.RFC4632">RFC4632</span>]</a></td>
<td>RFC 4632, <em>Classless Inter-domain Routing (CIDR): The Internet Address Assignment
and Aggregation Plan</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7159">[<span id="R.RFC7159">RFC7159</span>]</a></td>
<td>RFC7159, <em>The JavaScript Object Notation (JSON) Data Interchange Format</em>, IETF, March 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7230">[<span id="R.RFC7230">RFC7230</span>]</a></td>
<td>RFC 7230, <em>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</em>, IETF, June 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7252">[<span id="R.RFC7252">RFC7252</span>]</a></td>
<td>RFC 7252, <em>The Constrained Application Protocol (CoAP)</em>, IETF, June 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc8141">[<span id="R.RFC8141">RFC8141</span>]</a></td>
<td>RFC 8141, <em>Uniform Resource Names (URNs)</em>, IETF, April 2017.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/2000/NOTE-SOAP-20000508">[<span id="R.SOAP1.1">SOAP1.1</span>]</a></td>
<td>Simple Object Access Protocol (SOAP) 1.1, W3C.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-069.pdf">[<span id="R.TR-069">TR-069</span>]</a></td>
<td>TR-069 Amendment 6, <em>CPE WAN Management Protocol</em>, Broadband Forum, April 2018.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-106.pdf">[<span id="R.TR-106">TR-106</span>]</a></td>
<td>TR-106 Amendment 8, <em>Data Model Template for CWMP Endpoints and USP Agents</em>, Broadband Forum, May 2018.</td></tr>
<tr>
<td><a href="https://csa-iot.org/all-solutions/zigbee">[<span id="R.ZigBee2007">ZigBee2007</span>]</a></td>
<td>ZigBee 2007 Specification, <em>ZigBee 2007 Specification</em>, ZigBee Alliance, October 2007.</td></tr></tbody></table>

<h1 id="legend">Legend</h1>

<table class="middle-width partial-border">
<tbody>
<tr class="object">
<td>Object definition.</td></tr>
<tr class="parameter">
<td>Parameter definition.</td></tr></tbody></table>

<h1 id="storageservice12-data-model">StorageService:1.2 Data Model</h1>

<p>For a given implementation of this data model, the Agent MUST
indicate support for the highest version number of any object
or parameter that it supports. For example, even if the Agent
supports only a single parameter that was introduced in version
1.4, then it will indicate support for version 1.4. The version
number associated with each object and parameter is shown in
the <strong>Version</strong> column.</p>

<table class="full-width partial-border data-model-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Write</th>
<th>Description</th>
<th>Object Default</th>
<th>Version</th></tr></thead>
<tbody>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.">StorageService.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The Service Object for a Storage Service device.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.StorageService:1.StorageService.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or Disables the entire Storage mechanism.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMediumNumberOfEntries">PhysicalMediumNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of instances of <a href="#D.StorageService:1.StorageService.PhysicalMedium."><em>PhysicalMedium.{i}.</em></a>.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.StorageArrayNumberOfEntries">StorageArrayNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of instances of <a href="#D.StorageService:1.StorageService.StorageArray."><em>StorageArray.{i}.</em></a>.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolumeNumberOfEntries">LogicalVolumeNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of instances of <a href="#D.StorageService:1.StorageService.LogicalVolume."><em>LogicalVolume.{i}.</em></a>.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserAccountNumberOfEntries">UserAccountNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of instances of <a href="#D.StorageService:1.StorageService.UserAccount."><em>UserAccount.{i}.</em></a>.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserGroupNumberOfEntries">UserGroupNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of instances of <a href="#D.StorageService:1.StorageService.UserGroup."><em>UserGroup.{i}.</em></a>.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.Capabilities.">StorageService.{i}.Capabilities.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The overall capabilities of a Storage Service device. This is a constant read-only object, meaning that only a firmware upgrade will cause these values to be altered.
Note that when TR-140 was originally published there was a typo in this object name, which has been corrected.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Capabilities.FTPCapable">FTPCapable</span></td>
<td>boolean</td>
<td>R</td>
<td>Does this device contain an FTP server allowing clients to access the data via an FTP client?</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Capabilities.SFTPCapable">SFTPCapable</span></td>
<td>boolean</td>
<td>R</td>
<td>Does this device contain an SSH FTP server allowing clients to access the data via an SFTP client?</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Capabilities.HTTPCapable">HTTPCapable</span></td>
<td>boolean</td>
<td>R</td>
<td>Does this device contain an HTTP server allowing clients to access the data via an HTTP client?</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Capabilities.HTTPSCapable">HTTPSCapable</span></td>
<td>boolean</td>
<td>R</td>
<td>Does this device contain an HTTPS server allowing clients to access the data via an HTTPS client?</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Capabilities.HTTPWritable">HTTPWritable</span></td>
<td>boolean</td>
<td>R</td>
<td>Does this device contain an HTTP server that supports creating files via an HTTP PUT/POST mechanism that would allow an HTTP client to upload files via HTTP? This is also sometimes referred to as &ldquo;WebDAV&rdquo; support.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Capabilities.SupportedNetworkProtocols">SupportedNetworkProtocols</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Supported application-level network protocols. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedNetworkProtocols.SMB"><em>SMB</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedNetworkProtocols.NFS"><em>NFS</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedNetworkProtocols.AFP"><em>AFP</em></span>
The list MAY include vendor-specific protocols, which MUST be in the format defined in [<a href="#R.TR-106">TR-106</a>]. For example: “X_EXAMPLE-COM_MyProt.</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes">SupportedFileSystemTypes</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Supported FileSystems Types. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.FAT16"><em>FAT16</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.FAT32"><em>FAT32</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.NTFS"><em>NTFS</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.HFS"><em>HFS</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.HFS"><em>HFS+</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.HSFJ"><em>HSFJ</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.ext2"><em>ext2</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.ext3"><em>ext3</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.XFS"><em>XFS</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes.REISER"><em>REISER</em></span>
The list MAY include vendor-specific protocols, which MUST be in the format defined in [<a href="#R.TR-106">TR-106</a>]. For example: “X_EXAMPLE-COM_MyType.</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes">SupportedRaidTypes</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Supported RAID types. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID0"><em>RAID0</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID1"><em>RAID1</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID2"><em>RAID2</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID3"><em>RAID3</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID4"><em>RAID4</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID5"><em>RAID5</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID6"><em>RAID6</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID10"><em>RAID10</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID01"><em>RAID0+1</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID30"><em>RAID30</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID50"><em>RAID50</em></span></li>
<li><span id="D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes.RAID60"><em>RAID60</em></span>
The list MAY include vendor-specific protocols, which MUST be in the format defined in [<a href="#R.TR-106">TR-106</a>]. For example:“X_EXAMPLE-COM_MyRaid.</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.Capabilities.VolumeEncryptionCapable">VolumeEncryptionCapable</span></td>
<td>boolean</td>
<td>R</td>
<td>Does this device have the ability to encrypt and decrypt Logical Volumes as they are stored and retrieved?</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.NetInfo.">StorageService.{i}.NetInfo.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object provides general LAN network information about this device.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.NetInfo.HostName">HostName</span></td>
<td>string(:64)</td>
<td>W</td>
<td>Logical name which identifies the device on the local network. This is the first segment of a fully qualified domain name (FQDN). Combining <em>HostName</em>, a &ldquo;.&rdquo; and the <a href="#D.StorageService:1.StorageService.NetInfo.DomainName"><em>DomainName</em></a> will result in a fully qualified domain name.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.NetInfo.DomainName">DomainName</span></td>
<td>string(:255)</td>
<td>W</td>
<td>Domain name for the device on the local network. Combining <a href="#D.StorageService:1.StorageService.NetInfo.HostName"><em>HostName</em></a>, a &ldquo;.&rdquo; and <em>DomainName</em> will result in a fully qualified domain name (FQDN). For example, if the HostName contains &ldquo;myLaptop&rdquo; and the DomainName contains &ldquo;dsl.sp1.com&rdquo;, then the FQDN would be &ldquo;myLaptop.dsl.sp1.com&rdquo;.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.UserGroup.">StorageService.{i}.UserGroup.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides information about each user group configured on this device, which allows the grouping of user accounts for easier maintenance of permissions.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.StorageService:1.StorageService.UserGroup.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.StorageService:1.StorageService.UserGroup.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.StorageService:1.StorageService.UserGroup.GroupName"><em>GroupName</em></a>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserGroup.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables this group.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserGroup.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserGroup.GroupName">GroupName</span></td>
<td>string(:64)</td>
<td>W</td>
<td>The unique name of the group.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.UserAccount.">StorageService.{i}.UserAccount.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides information about each user configured on this device, which provides a means for controlling access to the device.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.StorageService:1.StorageService.UserAccount.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.StorageService:1.StorageService.UserAccount.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.StorageService:1.StorageService.UserAccount.Username"><em>Username</em></a>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserAccount.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables this user.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserAccount.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserAccount.Username">Username</span></td>
<td>string(:64)</td>
<td>W</td>
<td>The unique name of the user. Also used for authentication.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserAccount.Password">Password</span></td>
<td>string(:64)</td>
<td>W</td>
<td><p>Password used to authenticate the user when connecting to the Storage Service Device.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserAccount.UserGroupParticipation">UserGroupParticipation</span></td>
<td>string[](:1024)</td>
<td>W</td>
<td>Comma-separated list (maximum number of characters 1024) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.StorageService:1.StorageService.UserGroup."><em>UserGroup.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. Represents a User Group that this User Account is a member of. Each <a href="#D.StorageService:1.StorageService.UserGroup."><em>UserGroup.{i}.</em></a> referenced by this parameter MUST exist within the same StorageService instance.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserAccount.AllowFTPAccess">AllowFTPAccess</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables access via FTP (including SSH FTP access) for this user.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.UserAccount.AllowHTTPAccess">AllowHTTPAccess</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables access via HTTP (including HTTPS access) for this user.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.NetworkServer.">StorageService.{i}.NetworkServer.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows the control of network layer protocols authorization enforcement.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.NetworkServer.AFPEnable">AFPEnable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the AFP network protocol.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.NetworkServer.NFSEnable">NFSEnable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the NFS network protocol.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.NetworkServer.SMBEnable">SMBEnable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the SMB network protocol.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.NetworkServer.NetworkProtocolAuthReq">NetworkProtocolAuthReq</span></td>
<td>boolean</td>
<td>W</td>
<td>If this parameter is set to <em>false</em> then the device MUST NOT attempt to request login credentials or authenticate access from network layer protocols such as AFP, NFS, and SMB. If this parameter is set to <em>true</em> then the device MUST attempt to request login credentials or authenticate access from network layer protocols such as AFP, NFS, and SMB by using an instance of <a href="#D.StorageService:1.StorageService.UserAccount."><em>UserAccount.{i}.</em></a> found on this device.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.FTPServer.">StorageService.{i}.FTPServer.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows the configuration of the FTP server.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.FTPServer.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the FTP server.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.FTPServer.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The current status of this FTP server.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.FTPServer.Status.Enabled"><em>Enabled</em></span></li>
<li><span id="D.StorageService:1.StorageService.FTPServer.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.StorageService:1.StorageService.FTPServer.Status.Error"><em>Error</em></span></li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.FTPServer.MaxNumUsers">MaxNumUsers</span></td>
<td>unsignedInt(1:32)</td>
<td>W</td>
<td>Maximum number of users allowed to log in to the device at once via FTP.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.FTPServer.IdleTime">IdleTime</span></td>
<td>unsignedInt(0:600)</td>
<td>W</td>
<td>Maximum amount of time in <em>seconds</em> that the FTP socket will remain open without any activity. If set to 0 an infinite timeout will apply.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.FTPServer.PortNumber">PortNumber</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td><p>The port number that the FTP server is listening on.</p>

<p>The factory default value MUST be <em>21</em>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.FTPServer.AnonymousUser.">StorageService.{i}.FTPServer.AnonymousUser.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows the configuration of anonymous FTP access.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.FTPServer.AnonymousUser.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables support for anonymous access into the FTP server</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.FTPServer.AnonymousUser.StartingFolder">StartingFolder</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder."><em>LogicalVolume.{i}.Folder.</em></a> table. Represents the home directory for anonymous FTP access. The <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder."><em>LogicalVolume.{i}.Folder.{i}.</em></a> referenced by this parameter MUST exist within the same StorageService instance.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.FTPServer.AnonymousUser.ReadOnlyAccess">ReadOnlyAccess</span></td>
<td>boolean</td>
<td>W</td>
<td>If this is set to <em>true</em>, then the anonymous user is limited to only retrieval of files from the Storage Service (no deletions, copies, creations or uploads). If this is set to <em>false</em>, then the anonymous user has full permissions within the folder specified in <a href="#D.StorageService:1.StorageService.FTPServer.AnonymousUser.StartingFolder"><em>StartingFolder</em></a>. This SHOULD default to True.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.SFTPServer.">StorageService.{i}.SFTPServer.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows the configuration of the SSH FTP server.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.SFTPServer.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the SSH FTP server.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.SFTPServer.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The current status of this SSH FTP server.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.SFTPServer.Status.Enabled"><em>Enabled</em></span></li>
<li><span id="D.StorageService:1.StorageService.SFTPServer.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.StorageService:1.StorageService.SFTPServer.Status.Error"><em>Error</em></span></li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.SFTPServer.MaxNumUsers">MaxNumUsers</span></td>
<td>unsignedInt(1:32)</td>
<td>W</td>
<td>Maximum number of users allowed to log in to the device at once via SFTP.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.SFTPServer.IdleTime">IdleTime</span></td>
<td>unsignedInt(0:600)</td>
<td>W</td>
<td>Maximum amount of time in <em>seconds</em> that the SFTP socket will remain open without any activity. If set to 0 an infinite timeout will apply.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.SFTPServer.PortNumber">PortNumber</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td><p>The port number that the SSH FTP server is listening on.</p>

<p>The factory default value MUST be <em>115</em>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.HTTPServer.">StorageService.{i}.HTTPServer.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows the configuration of the HTTP server.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPServer.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the HTTP server.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPServer.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The current status of this HTTP server.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.HTTPServer.Status.Enabled"><em>Enabled</em></span></li>
<li><span id="D.StorageService:1.StorageService.HTTPServer.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.StorageService:1.StorageService.HTTPServer.Status.Error"><em>Error</em></span></li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPServer.MaxNumUsers">MaxNumUsers</span></td>
<td>unsignedInt(1:32)</td>
<td>W</td>
<td>Maximum number of users allowed to log in to the device at once via HTTP.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPServer.IdleTime">IdleTime</span></td>
<td>unsignedInt(0:600)</td>
<td>W</td>
<td>Maximum amount of time in <em>seconds</em> that the HTTP socket will remain open without any activity. If set to 0 an infinite timeout will apply.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPServer.HTTPWritingEnabled">HTTPWritingEnabled</span></td>
<td>boolean</td>
<td>R</td>
<td>Is support for the HTTP PUT/POST mechanism (WebDAV) enabled?</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPServer.PortNumber">PortNumber</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td><p>The port number that the HTTP server is listening on.</p>

<p>The factory default value MUST be <em>80</em>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPServer.AuthenticationReq">AuthenticationReq</span></td>
<td>boolean</td>
<td>W</td>
<td>If <em>true</em>, HTTP will require login prior to access (basic or digest authentication).</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.HTTPSServer.">StorageService.{i}.HTTPSServer.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows the configuration of the HTTPS server.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPSServer.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the HTTPS server.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPSServer.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The current status of this HTTPS server.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.HTTPSServer.Status.Enabled"><em>Enabled</em></span></li>
<li><span id="D.StorageService:1.StorageService.HTTPSServer.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.StorageService:1.StorageService.HTTPSServer.Status.Error"><em>Error</em></span></li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPSServer.MaxNumUsers">MaxNumUsers</span></td>
<td>unsignedInt(1:32)</td>
<td>W</td>
<td>Maximum number of users allowed to log in to the device at once via HTTPS.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPSServer.IdleTime">IdleTime</span></td>
<td>unsignedInt(0:600)</td>
<td>W</td>
<td>Maximum amount of time in <em>seconds</em> that the HTTPS socket will remain open without any activity. If set to 0 an infinite timeout will apply.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPSServer.HTTPWritingEnabled">HTTPWritingEnabled</span></td>
<td>boolean</td>
<td>R</td>
<td>Is support for the HTTP PUT/POST mechanism (WebDAV) enabled?</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPSServer.PortNumber">PortNumber</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td><p>The port number that the HTTPS server is listening on.</p>

<p>The factory default value MUST be <em>443</em>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.HTTPSServer.AuthenticationReq">AuthenticationReq</span></td>
<td>boolean</td>
<td>W</td>
<td>If <em>true</em>, HTTPS will require login prior to access (basic or digest authentication).</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.">StorageService.{i}.PhysicalMedium.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object provides information about each physical medium connected to this device.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.StorageService:1.StorageService.PhysicalMedium.Name"><em>Name</em></a>, or with the same values for all of <a href="#D.StorageService:1.StorageService.PhysicalMedium.Vendor"><em>Vendor</em></a>, <a href="#D.StorageService:1.StorageService.PhysicalMedium.Model"><em>Model</em></a> and <a href="#D.StorageService:1.StorageService.PhysicalMedium.SerialNumber"><em>SerialNumber</em></a>, or with a given value for <a href="#D.StorageService:1.StorageService.PhysicalMedium.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.Name">Name</span></td>
<td>string(:64)</td>
<td>W</td>
<td>A user-friendly name for this physical storage medium.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.Vendor">Vendor</span></td>
<td>string(:64)</td>
<td>R</td>
<td>The vendor of this physical storage medium.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.Model">Model</span></td>
<td>string(:128)</td>
<td>R</td>
<td>The model name/number of this physical storage medium.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.SerialNumber">SerialNumber</span></td>
<td>string(:64)</td>
<td>R</td>
<td>The serial number of this physical storage medium.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.FirmwareVersion">FirmwareVersion</span></td>
<td>string(:64)</td>
<td>R</td>
<td>The firmware version for firmware contained within the physical medium’s controller.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType">ConnectionType</span></td>
<td>string</td>
<td>R</td>
<td><p>The method of connection to this storage device. Enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.USB1.1"><em>USB 1.1</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.USB2.0"><em>USB 2.0</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.IEEE1394"><em>IEEE1394</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.IEEE1394b"><em>IEEE1394b</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.IDE"><em>IDE</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.EIDE"><em>EIDE</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.ATA33"><em>ATA/33</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.ATA66"><em>ATA/66</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.ATA100"><em>ATA/100</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.ATA133"><em>ATA/133</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.SATA150"><em>SATA/150</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.SATA300"><em>SATA/300</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.SCSI-1"><em>SCSI-1</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.FastSCSI"><em>Fast SCSI</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.Fast-WideSCSI"><em>Fast-Wide SCSI</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.UltraSCSI"><em>Ultra SCSI</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.UltraWideSCSI"><em>Ultra Wide SCSI</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.Ultra2SCSI"><em>Ultra2 SCSI</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.Ultra2WideSCSI"><em>Ultra2 Wide SCSI</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.Ultra3SCSI"><em>Ultra3 SCSI</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.Ultra-320SCSI"><em>Ultra-320 SCSI</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.Ultra-640SCSI"><em>Ultra-640 SCSI</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.SSA"><em>SSA</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.SSA-40"><em>SSA-40</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.ConnectionType.FibreChannel"><em>Fibre Channel</em></span>
The parameter MAY instead be a vendor-specific connection type, which MUST be in the format defined in [<a href="#R.TR-106">TR-106</a>]. For example:
&ldquo;X_EXAMPLE-COM_MyConnType&rdquo;</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.Removable">Removable</span></td>
<td>boolean</td>
<td>R</td>
<td>Is this physical storage medium removable? Removable storage implies that the removal action is part of normal operations and is expected to leave the data on the removable storage intact.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.Capacity">Capacity</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The formatted capacity of the physical storage medium in <em>MB</em>.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The general activity status of this physical storage medium.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.Status.Online"><em>Online</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.Status.Standby"><em>Standby</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.Status.Offline"><em>Offline</em></span></li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.Uptime">Uptime</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>Time since boot in <em>hours</em>. This MAY reflect S.M.A.R.T. PowerOnHours.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.SMARTCapable">SMARTCapable</span></td>
<td>boolean</td>
<td>R</td>
<td>Is this physical medium capable of reporting S.M.A.R.T. statistics?</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.Health">Health</span></td>
<td>string</td>
<td>R</td>
<td><p>The general health of this physical storage medium. Enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.Health.OK"><em>OK</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.Health.Failing"><em>Failing</em></span></li>
<li><span id="D.StorageService:1.StorageService.PhysicalMedium.Health.Error"><em>Error</em></span>
Note: Health MAY be obtained from S.M.A.R.T. data where available.</li></ul></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.PhysicalMedium.HotSwappable">HotSwappable</span></td>
<td>boolean</td>
<td>R</td>
<td>Is this physical medium capable of being removed while the device is powered up? Hot-Swappable storage does not imply Removable storage; hot-swappable is an operation taken only when the disk has failed and needs to be replaced. The data on the hot-swapped storage will not remain intact.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.StorageArray.">StorageService.{i}.StorageArray.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides information about each storage array (RAID) configured on this device.
Creating an instance of this object generates a disabled <em>StorageArray</em> instance. Before this new <em>StorageArray</em> instance can be enabled (via a SetParameterValues command), it MUST have the following parameters configured: <a href="#D.StorageService:1.StorageService.StorageArray.Name"><em>Name</em></a>, <a href="#D.StorageService:1.StorageService.StorageArray.RaidType"><em>RaidType</em></a>, and <a href="#D.StorageService:1.StorageService.StorageArray.PhysicalMediumReference"><em>PhysicalMediumReference</em></a>. Once an instance is enabled the following parameters become immutable for the life of the instance: <a href="#D.StorageService:1.StorageService.StorageArray.Name"><em>Name</em></a>, <a href="#D.StorageService:1.StorageService.StorageArray.RaidType"><em>RaidType</em></a>, and <a href="#D.StorageService:1.StorageService.StorageArray.PhysicalMediumReference"><em>PhysicalMediumReference</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.StorageService:1.StorageService.StorageArray.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.StorageService:1.StorageService.StorageArray.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.StorageService:1.StorageService.StorageArray.PhysicalMediumReference"><em>PhysicalMediumReference</em></a>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.StorageArray.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.StorageArray.Name">Name</span></td>
<td>string(:64)</td>
<td>W</td>
<td>A user-friendly name for this Storage Array.
Once this instance becomes enabled, this parameter will be immutable for the life of the instance.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.StorageArray.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The current status of this StorageArray.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.StorageArray.Status.Rebuilding"><em>Rebuilding</em></span> (Indicates a drive participating in an array is replaced, while the data striping and/or redundancy of the array are reestablished on the new disk. In this state, data operations to the array will function properly, but its performance could be significantly diminished)</li>
<li><span id="D.StorageService:1.StorageService.StorageArray.Status.Initializing"><em>Initializing</em></span> (The state when the RAID array is being first constructed, and the data striping and/or redundancy of the array are first being established. In this state, data operations to the array will function properly, but its performance could be significantly diminished and the redundancy might not be fully established)</li>
<li><span id="D.StorageService:1.StorageService.StorageArray.Status.Offline"><em>Offline</em></span> (Indicates the RAID array is not available. This might occur because the administrator explicitly has disabled the array, or because underlying elements of the array, such as the physical disks, are not ready)</li>
<li><span id="D.StorageService:1.StorageService.StorageArray.Status.Online"><em>Online</em></span> (Indicates the RAID array is fully operational)</li>
<li><span id="D.StorageService:1.StorageService.StorageArray.Status.Error"><em>Error</em></span> (Indicates an error condition exists within the RAID array. In this state, data operations to the array are not possible, and data loss might have occurred)</li>
<li><span id="D.StorageService:1.StorageService.StorageArray.Status.Degraded"><em>Degraded</em></span> (Indicates the loss of a drive only in a Raid Type of more than 2 drives, that can support multiple failures. Data redundancy continues to be available but with degraded capability)</li>
<li><span id="D.StorageService:1.StorageService.StorageArray.Status.Critical"><em>Critical</em></span> (Indicates the loss of data redundancy, and a possible degraded state. The array continues to perform read/write operations)</li></ul></td>
<td>Offline</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.StorageArray.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables this StorageArray instance.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.StorageArray.RaidType">RaidType</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be a member of the list reported by the <a href="#D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes"><em>Capabilities.SupportedRaidTypes</em></a> parameter. Note that after creation of the Storage Array, any subsequent writes to this parameter MUST be ignored as array type migration is not supported. To identify which RAID Types are supported, see <a href="#D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes"><em>Capabilities.SupportedRaidTypes</em></a>.
Once this instance becomes enabled, this parameter will be immutable for the life of the instance.</td>
<td>Linear</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.StorageArray.UsableCapacity">UsableCapacity</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The total Usable Capacity of the Storage Array in <em>MB</em>. This is computed by the system based on <a href="#D.StorageService:1.StorageService.StorageArray.PhysicalMediumReference"><em>PhysicalMediumReference</em></a> and <a href="#D.StorageService:1.StorageService.StorageArray.RaidType"><em>RaidType</em></a>. Disk size is a consideration, as many RAID Types use the smallest drive in the group for calculations.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.StorageArray.PhysicalMediumReference">PhysicalMediumReference</span></td>
<td>string[](:1024)</td>
<td>W</td>
<td>Comma-separated list (maximum number of characters 1024) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.StorageService:1.StorageService.PhysicalMedium."><em>PhysicalMedium.</em></a> table. Represents the physical medium used by this RAID. Each Physical Medium referenced by this parameter MUST exist within the same StorageService instance. A <a href="#D.StorageService:1.StorageService.PhysicalMedium."><em>PhysicalMedium.{i}.</em></a> MUST only be referenced by one <a href="#D.StorageService:1.StorageService.StorageArray."><em>StorageArray.{i}.</em></a> instance.
Once this instance becomes enabled, this parameter will be immutable for the life of the instance.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.">StorageService.{i}.LogicalVolume.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides information about each logical volume configured on this device. A logical volume can reside either on an instance of a single <a href="#D.StorageService:1.StorageService.PhysicalMedium."><em>PhysicalMedium.{i}.</em></a> or on an instance of a single <a href="#D.StorageService:1.StorageService.StorageArray."><em>StorageArray.{i}.</em></a> instance, but it can not span multiple instances of either. <a href="#D.StorageService:1.StorageService.LogicalVolume.PhysicalReference"><em>PhysicalReference</em></a> is used to define where this <em>LogicalVolume</em> instance resides.
Creating an instance of this object generates a disabled <em>LogicalVolume</em> instance. Before this new <em>LogicalVolume</em> instance can be enabled (via a SetParameterValues command), it MUST have the following parameters configured: <a href="#D.StorageService:1.StorageService.LogicalVolume.Name"><em>Name</em></a>, <a href="#D.StorageService:1.StorageService.LogicalVolume.PhysicalReference"><em>PhysicalReference</em></a>, and <a href="#D.StorageService:1.StorageService.LogicalVolume.Capacity"><em>Capacity</em></a>. Once an instance is enabled the following parameters become immutable for the life of the instance: <a href="#D.StorageService:1.StorageService.LogicalVolume.Name"><em>Name</em></a>, <a href="#D.StorageService:1.StorageService.LogicalVolume.PhysicalReference"><em>PhysicalReference</em></a>, and <a href="#D.StorageService:1.StorageService.LogicalVolume.Capacity"><em>Capacity</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Name">Name</span></td>
<td>string(:64)</td>
<td>W</td>
<td>The name of the partition for this logical volume.
Once this instance becomes enabled, this parameter will be immutable for the life of the instance. This parameter acts as the unique identifier for the instance, thus the device MUST NOT allow multiple <a href="#D.StorageService:1.StorageService.LogicalVolume."><em>LogicalVolume</em></a> instances to use the same <em>Name</em>.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The current status of this Logical Volume. Enumeration of:</p>

<ul>
<li><span id="D.StorageService:1.StorageService.LogicalVolume.Status.Offline"><em>Offline</em></span></li>
<li><span id="D.StorageService:1.StorageService.LogicalVolume.Status.Online"><em>Online</em></span></li>
<li><span id="D.StorageService:1.StorageService.LogicalVolume.Status.Error"><em>Error</em></span>
The default <a href="#D.StorageService:1.StorageService.LogicalVolume.Status.Offline"><em>Offline</em></a> status will exist until this <a href="#D.StorageService:1.StorageService.LogicalVolume."><em>LogicalVolume</em></a> is enabled.</li></ul></td>
<td>Offline</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables this <a href="#D.StorageService:1.StorageService.LogicalVolume."><em>LogicalVolume</em></a> instance.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.PhysicalReference">PhysicalReference</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.StorageService:1.StorageService.PhysicalMedium."><em>PhysicalMedium.</em></a> or <a href="#D.StorageService:1.StorageService.StorageArray."><em>StorageArray.</em></a> tables. Represents the physical medium or RAID where this <a href="#D.StorageService:1.StorageService.LogicalVolume."><em>LogicalVolume</em></a> resides. The <a href="#D.StorageService:1.StorageService.PhysicalMedium."><em>PhysicalMedium.{i}.</em></a> or <a href="#D.StorageService:1.StorageService.StorageArray."><em>StorageArray.{i}.</em></a> referenced by this parameter MUST exist within the same StorageService instance.
An AddObject followed by an enabling SetParameterValues on <a href="#D.StorageService:1.StorageService.LogicalVolume.Name"><em>Name</em></a>, <em>PhysicalReference</em>, and <a href="#D.StorageService:1.StorageService.LogicalVolume.Capacity"><em>Capacity</em></a> will cause the formatting of this logical partition and these parameters to become immutable for the life of this instance.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.FileSystem">FileSystem</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be a member of the list reported by the <a href="#D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes"><em>Capabilities.SupportedFileSystemTypes</em></a> parameter. The file system for this <a href="#D.StorageService:1.StorageService.LogicalVolume."><em>LogicalVolume</em></a> as it is currently formatted.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Capacity">Capacity</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The Capacity of the Logical Volume in <em>MB</em>.
Once this instance becomes enabled, this parameter will be immutable for the life of the instance.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.UsedSpace">UsedSpace</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The Amount of Used Space on the Logical Volume in <em>MB</em>.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.ThresholdLimit">ThresholdLimit</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>This value is specified in <em>MB</em> and controls when <a href="#D.StorageService:1.StorageService.LogicalVolume.ThresholdReached"><em>ThresholdReached</em></a> will have its value altered. If the value of <a href="#D.StorageService:1.StorageService.LogicalVolume.UsedSpace"><em>UsedSpace</em></a> plus the value of <em>ThresholdLimit</em>r is greater than or equal to the value of <a href="#D.StorageService:1.StorageService.LogicalVolume.Capacity"><em>Capacity</em></a> then the value of <a href="#D.StorageService:1.StorageService.LogicalVolume.ThresholdReached"><em>ThresholdReached</em></a> will be <em>true</em>, otherwise it will be <em>false</em>. Setting the value of this parameter to 0 will disable the Thresholding mechanism.</td>
<td>0</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.ThresholdReached">ThresholdReached</span></td>
<td>boolean</td>
<td>R</td>
<td>When <a href="#D.StorageService:1.StorageService.LogicalVolume.ThresholdLimit"><em>ThresholdLimit</em></a> &gt; 0 and <a href="#D.StorageService:1.StorageService.LogicalVolume.UsedSpace"><em>UsedSpace</em></a> + <a href="#D.StorageService:1.StorageService.LogicalVolume.ThresholdLimit"><em>ThresholdLimit</em></a> &gt;= <a href="#D.StorageService:1.StorageService.LogicalVolume.Capacity"><em>Capacity</em></a> this will be <em>true</em>, else <em>false</em>.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Encrypted">Encrypted</span></td>
<td>boolean</td>
<td>R</td>
<td>Is the Volume Encrypted? The type of encryption will be handled by the device internally and is not a matter for remote management.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.FolderNumberOfEntries">FolderNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of instances of <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder."><em>LogicalVolume.{i}.Folder.{i}.</em></a> on this <a href="#D.StorageService:1.StorageService.LogicalVolume."><em>LogicalVolume</em></a>.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides information about each top-level folder configured on this logical volume. Each top-level folder allows the configuration of quotas and access permissions.
Creating an instance of this object generates a disabled <em>Folder</em> instance. Before this new <em>Folder</em> instance can be enabled (via a SetParameterValues command), it MUST have the <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Name"><em>Name</em></a> configured. Folder instances are unique per <a href="#D.StorageService:1.StorageService.LogicalVolume."><em>LogicalVolume.{i}.</em></a> and the unique key for this object is <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Name"><em>Name</em></a> which also means that once an instance is enabled <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Name"><em>Name</em></a> becomes immutable for the life of the instance.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.Name">Name</span></td>
<td>string(:64)</td>
<td>W</td>
<td>Setting of this variable will add a new folder. The full hierarchical pathname of the folder MUST be specified.
All folders created on the Logical Volume will appear here, created locally or via AddObject.
The local directory name will be formatted as a UNIX-style directory name, for example: /home/ftp
The presence of a trailing `/’ character is inconsequential, meaning that /home/ftp/ is the same as /home/ftp.
Once this instance becomes enabled, this parameter will be immutable for the life of the instance. This parameter acts as the unique identifier for the instance, thus the device MUST NOT allow multiple <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder."><em>Folder</em></a> instances within a <a href="#D.StorageService:1.StorageService.LogicalVolume."><em>LogicalVolume.{i}.</em></a> to use the same <em>Name</em>.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Entry is enabled or disabled</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccountAccess">UserAccountAccess</span></td>
<td>unsignedInt(0:3)</td>
<td>W</td>
<td><p>What are the User authentication requirements of this folder? The following bitmap is used.</p>

<blockquote>11 = Authenticated Access required for Network protocols (NFS/AFP/SMB) and for non Network protocols (FTP/SFTP/HTTP/HTTPS)</blockquote>

<blockquote>10 = Authenticated Access required for Network protocols (NFS/AFP/SMB)</blockquote>

<blockquote>01 = Authenticated Access Required for non Network protocols (FTP/SFTP/HTTP/HTTPS)</blockquote>

<blockquote>00 = No Authentication required</blockquote></td>
<td>2</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccessNumberOfEntries">UserAccessNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of instances of <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess."><em>LogicalVolume.{i}.Folder.{i}.UserAccess.{i}.</em></a> on this <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder."><em>LogicalVolume.{i}.Folder.{i}.</em></a>.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccessNumberOfEntries">GroupAccessNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of instances of <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess."><em>LogicalVolume.{i}.Folder.{i}.GroupAccess.{i}.</em></a> on this <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder."><em>LogicalVolume.{i}.Folder.{i}.</em></a></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.UserAccess.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides information about each user account configured for access permissions on this folder.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.UserReference"><em>UserReference</em></a>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the entry.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.UserReference">UserReference</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.StorageService:1.StorageService.UserAccount."><em>UserAccount.</em></a> table. Represents a user that has access to this folder. The instance of <a href="#D.StorageService:1.StorageService.UserAccount."><em>UserAccount.{i}.</em></a> referenced by this parameter MUST exist within the same StorageService instance.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.Permissions">Permissions</span></td>
<td>unsignedInt(0:7)</td>
<td>W</td>
<td><p>What permissions the user account has over this <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder."><em>LogicalVolume.{i}.Folder.{i}.</em></a>. This is an integer value like the xNIX systems use for access permissions, meaning that it is a 3-bit field with the following structure:</p>

<blockquote>100 = read field</blockquote>

<blockquote>010 = write field</blockquote>

<blockquote>001 = execute field</blockquote></td>
<td>7</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.GroupAccess.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides information about each user group configured for access permissions on this folder.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.GroupReference"><em>GroupReference</em></a>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Enables or disables the entry.</p>

<p>The factory default value MUST be <em>false</em>.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.GroupReference">GroupReference</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.StorageService:1.StorageService.UserGroup."><em>UserGroup.</em></a> table. Represents a user group that is a collection of User Accounts that have access to this folder. The <a href="#D.StorageService:1.StorageService.UserGroup."><em>UserGroup.{i}.</em></a> referenced by this parameter MUST exist within the same StorageService instance.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.Permissions">Permissions</span></td>
<td>unsignedInt(0:7)</td>
<td>W</td>
<td><p>What permissions the group members have over this <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder."><em>LogicalVolume.{i}.Folder.{i}.</em></a> instance. This is an integer value like the xNIX systems use for access permissions, meaning that it is a 3-bit field with the following structure:</p>

<blockquote>100 = read field</blockquote>

<blockquote>010 = write field</blockquote>

<blockquote>001 = execute field</blockquote></td>
<td>7</td>
<td>1.0</td></tr>
<tr class="object">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.Quota.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object allows the configuration of per-folder storage quota management.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables quota management for this folder.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.Capacity">Capacity</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Maximum size in <em>MB</em> of the quota for this folder.</td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.UsedSpace">UsedSpace</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>Current size in <em>MB</em> of this folder.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.ThresholdLimit">ThresholdLimit</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>This value is specified in <em>MB</em> and controls when <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.ThresholdReached"><em>ThresholdReached</em></a> will have its value altered. If the value of <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.UsedSpace"><em>UsedSpace</em></a> plus the value of this parameter is greater than or equal to the value of <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.Capacity"><em>Capacity</em></a> then the value of <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.ThresholdReached"><em>ThresholdReached</em></a> will be <em>true</em>, otherwise it will be <em>false</em>. Setting the value of this parameter to 0 will disable the Thresholding mechanism.</td>
<td>0</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.ThresholdReached">ThresholdReached</span></td>
<td>boolean</td>
<td>R</td>
<td>When <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.ThresholdLimit"><em>ThresholdLimit</em></a> &gt; 0 and <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.UsedSpace"><em>UsedSpace</em></a> + <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.ThresholdLimit"><em>ThresholdLimit</em></a> &gt;= <a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.Capacity"><em>Capacity</em></a> this will be <em>true</em>, else <em>false</em>.</td>
<td>false</td>
<td>1.0</td></tr>
<tr class="parameter">
<td><span id="D.StorageService:1.StorageServiceNumberOfEntries">StorageServiceNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Number of entries in <a href="#D.StorageService:1.StorageService."><em>StorageService</em></a>.</td>
<td>-</td>
<td>1.0</td></tr></tbody></table>

<h2 id="inform-and-notification-requirements">Inform and Notification Requirements</h2>

<h3 id="parameters-for-which-active-notification-may-be-denied">Parameters for which Active Notification MAY be Denied</h3>

<table class="middle-width partial-border">
<thead>
<tr>
<th>Parameter</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.">StorageService.{i}.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Alias">Alias</a></td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.UserGroup.">StorageService.{i}.UserGroup.{i}.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserGroup.Alias">Alias</a></td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.UserAccount.">StorageService.{i}.UserAccount.{i}.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserAccount.Alias">Alias</a></td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.">StorageService.{i}.PhysicalMedium.{i}.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.Uptime">Uptime</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.Alias">Alias</a></td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.StorageArray.">StorageService.{i}.StorageArray.{i}.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.StorageArray.Alias">Alias</a></td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.">StorageService.{i}.LogicalVolume.{i}.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.UsedSpace">UsedSpace</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Alias">Alias</a></td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Alias">Alias</a></td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.UserAccess.{i}.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.Alias">Alias</a></td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.GroupAccess.{i}.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.Alias">Alias</a></td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.Quota.</a></td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.UsedSpace">UsedSpace</a></td></tr></tbody></table>

<h2 id="profile-definitions">Profile Definitions</h2>

<h3 id="notation">Notation</h3>

<p>The following abbreviations are used to specify profile requirements:</p>

<table class="middle-width partial-border profile-notation-table">
<thead>
<tr>
<th>Abbreviation</th>
<th>Description</th></tr></thead>
<tbody>
<tr>
<td>R</td>
<td>Read support is REQUIRED.</td></tr>
<tr>
<td>W</td>
<td>Both Read and Write support is REQUIRED. This MUST NOT be specified for a parameter that is defined as read-only.</td></tr>
<tr>
<td>P</td>
<td>The object is REQUIRED to be present.</td></tr>
<tr>
<td>C</td>
<td>Creation and deletion of instances of the object is REQUIRED.</td></tr>
<tr>
<td>A</td>
<td>Creation of instances of the object is REQUIRED, but deletion is not REQUIRED.</td></tr>
<tr>
<td>D</td>
<td>Deletion of instances of the object is REQUIRED, but creation is not REQUIRED.</td></tr></tbody></table>

<h3 id="P.StorageService:1.Baseline:1">Baseline:1 Profile</h3>

<p>This table defines the <em>Baseline:1</em> profile for the <em>StorageService:1</em> data model.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.">StorageService.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMediumNumberOfEntries">PhysicalMediumNumberOfEntries</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolumeNumberOfEntries">LogicalVolumeNumberOfEntries</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.Capabilities.">StorageService.{i}.Capabilities.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Capabilities.FTPCapable">FTPCapable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Capabilities.SFTPCapable">SFTPCapable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Capabilities.HTTPCapable">HTTPCapable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Capabilities.HTTPSCapable">HTTPSCapable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Capabilities.HTTPWritable">HTTPWritable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Capabilities.SupportedNetworkProtocols">SupportedNetworkProtocols</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Capabilities.SupportedFileSystemTypes">SupportedFileSystemTypes</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Capabilities.VolumeEncryptionCapable">VolumeEncryptionCapable</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.NetInfo.">StorageService.{i}.NetInfo.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetInfo.HostName">HostName</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetInfo.DomainName">DomainName</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.">StorageService.{i}.NetworkServer.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.AFPEnable">AFPEnable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.NFSEnable">NFSEnable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.SMBEnable">SMBEnable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.NetworkProtocolAuthReq">NetworkProtocolAuthReq</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.">StorageService.{i}.PhysicalMedium.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.Name">Name</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.Vendor">Vendor</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.Model">Model</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.SerialNumber">SerialNumber</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.FirmwareVersion">FirmwareVersion</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.ConnectionType">ConnectionType</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.Removable">Removable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.Capacity">Capacity</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.Status">Status</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.SMARTCapable">SMARTCapable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.HotSwappable">HotSwappable</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.">StorageService.{i}.LogicalVolume.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Name">Name</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Status">Status</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Enable">Enable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.PhysicalReference">PhysicalReference</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.FileSystem">FileSystem</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Capacity">Capacity</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.UsedSpace">UsedSpace</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Encrypted">Encrypted</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.FolderNumberOfEntries">FolderNumberOfEntries</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Name">Name</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Enable">Enable</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccountAccess">UserAccountAccess</a></td>
<td>R</td></tr></tbody></table>

<h3 id="P.StorageService:1.UserAccess:1">UserAccess:1 Profile</h3>

<p>This table defines the <em>UserAccess:1</em> profile for the <em>StorageService:1</em> data model.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.">StorageService.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserAccountNumberOfEntries">UserAccountNumberOfEntries</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.">StorageService.{i}.NetworkServer.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.NetworkProtocolAuthReq">NetworkProtocolAuthReq</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.UserAccount.">StorageService.{i}.UserAccount.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserAccount.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserAccount.Username">Username</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserAccount.Password">Password</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccountAccess">UserAccountAccess</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccessNumberOfEntries">UserAccessNumberOfEntries</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.UserAccess.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.UserReference">UserReference</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.Permissions">Permissions</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.GroupAccess:1">GroupAccess:1 Profile</h3>

<p>The <em>GroupAccess:1</em> profile for the <em>StorageService:1</em> data model is defined as the union of the <em><a href="#P.StorageService:1.UserAccess:1">UserAccess:1</a></em> profile and the additional requirements defined in this table.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.">StorageService.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserGroupNumberOfEntries">UserGroupNumberOfEntries</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.UserGroup.">StorageService.{i}.UserGroup.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserGroup.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserGroup.GroupName">GroupName</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.UserAccount.">StorageService.{i}.UserAccount.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserAccount.UserGroupParticipation">UserGroupParticipation</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.GroupAccess.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.GroupReference">GroupReference</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.Permissions">Permissions</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.FTPServer:1">FTPServer:1 Profile</h3>

<p>This table defines the <em>FTPServer:1</em> profile for the <em>StorageService:1</em> data model.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.FTPServer.">StorageService.{i}.FTPServer.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.FTPServer.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.FTPServer.Status">Status</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.FTPServer.MaxNumUsers">MaxNumUsers</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.FTPServer.IdleTime">IdleTime</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.FTPServer.PortNumber">PortNumber</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.FTPServer.AnonymousUser.">StorageService.{i}.FTPServer.AnonymousUser.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.FTPServer.AnonymousUser.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.FTPServer.AnonymousUser.StartingFolder">StartingFolder</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.FTPServer.AnonymousUser.ReadOnlyAccess">ReadOnlyAccess</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.SFTPServer:1">SFTPServer:1 Profile</h3>

<p>The <em>SFTPServer:1</em> profile for the <em>StorageService:1</em> data model is defined as the union of the <em><a href="#P.StorageService:1.FTPServer:1">FTPServer:1</a></em> and <em><a href="#P.StorageService:1.UserAccess:1">UserAccess:1</a></em> profiles and the additional requirements defined in this table.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.UserAccount.">StorageService.{i}.UserAccount.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserAccount.AllowFTPAccess">AllowFTPAccess</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.SFTPServer.">StorageService.{i}.SFTPServer.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.SFTPServer.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.SFTPServer.Status">Status</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.SFTPServer.MaxNumUsers">MaxNumUsers</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.SFTPServer.IdleTime">IdleTime</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.SFTPServer.PortNumber">PortNumber</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.HTTPServer:1">HTTPServer:1 Profile</h3>

<p>This table defines the <em>HTTPServer:1</em> profile for the <em>StorageService:1</em> data model.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.HTTPServer.">StorageService.{i}.HTTPServer.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPServer.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPServer.Status">Status</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPServer.MaxNumUsers">MaxNumUsers</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPServer.IdleTime">IdleTime</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPServer.HTTPWritingEnabled">HTTPWritingEnabled</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPServer.PortNumber">PortNumber</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPServer.AuthenticationReq">AuthenticationReq</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.HTTPSServer:1">HTTPSServer:1 Profile</h3>

<p>The <em>HTTPSServer:1</em> profile for the <em>StorageService:1</em> data model is defined as the union of the <em><a href="#P.StorageService:1.HTTPServer:1">HTTPServer:1</a></em> and <em><a href="#P.StorageService:1.UserAccess:1">UserAccess:1</a></em> profiles and the additional requirements defined in this table.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.UserAccount.">StorageService.{i}.UserAccount.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.UserAccount.AllowHTTPAccess">AllowHTTPAccess</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.HTTPSServer.">StorageService.{i}.HTTPSServer.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPSServer.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPSServer.Status">Status</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPSServer.MaxNumUsers">MaxNumUsers</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPSServer.IdleTime">IdleTime</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPSServer.HTTPWritingEnabled">HTTPWritingEnabled</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPSServer.PortNumber">PortNumber</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.HTTPSServer.AuthenticationReq">AuthenticationReq</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.VolumeConfig:1">VolumeConfig:1 Profile</h3>

<p>The <em>VolumeConfig:1</em> profile for the <em>StorageService:1</em> data model is defined as the union of the <em><a href="#P.StorageService:1.Baseline:1">Baseline:1</a></em> profile and the additional requirements defined in this table.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.">StorageService.{i}.PhysicalMedium.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.PhysicalMedium.Name">Name</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.">StorageService.{i}.LogicalVolume.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Name">Name</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.FileSystem">FileSystem</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Capacity">Capacity</a></td>
<td>W</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Name">Name</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccountAccess">UserAccountAccess</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.RAID:1">RAID:1 Profile</h3>

<p>This table defines the <em>RAID:1</em> profile for the <em>StorageService:1</em> data model.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.">StorageService.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.StorageArrayNumberOfEntries">StorageArrayNumberOfEntries</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.Capabilities.">StorageService.{i}.Capabilities.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.Capabilities.SupportedRaidTypes">SupportedRaidTypes</a></td>
<td>R</td></tr>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.StorageArray.">StorageService.{i}.StorageArray.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.StorageArray.Name">Name</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.StorageArray.Status">Status</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.StorageArray.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.StorageArray.RaidType">RaidType</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.StorageArray.UsableCapacity">UsableCapacity</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.StorageArray.PhysicalMediumReference">PhysicalMediumReference</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.FolderQuota:1">FolderQuota:1 Profile</h3>

<p>This table defines the <em>FolderQuota:1</em> profile for the <em>StorageService:1</em> data model.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.Quota.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.Enable">Enable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.Capacity">Capacity</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.UsedSpace">UsedSpace</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.ThresholdLimit">ThresholdLimit</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.ThresholdReached">ThresholdReached</a></td>
<td>R</td></tr></tbody></table>

<h3 id="P.StorageService:1.VolumeThresh:1">VolumeThresh:1 Profile</h3>

<p>This table defines the <em>VolumeThresh:1</em> profile for the <em>StorageService:1</em> data model.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.">StorageService.{i}.LogicalVolume.{i}.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Capacity">Capacity</a></td>
<td>R</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.ThresholdLimit">ThresholdLimit</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.ThresholdReached">ThresholdReached</a></td>
<td>R</td></tr></tbody></table>

<h3 id="P.StorageService:1.NetServer:1">NetServer:1 Profile</h3>

<p>This table defines the <em>NetServer:1</em> profile for the <em>StorageService:1</em> data model.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.">StorageService.{i}.NetworkServer.</a></td>
<td>P</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.AFPEnable">AFPEnable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.NFSEnable">NFSEnable</a></td>
<td>W</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.NetworkServer.SMBEnable">SMBEnable</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.Baseline:2">Baseline:2 Profile</h3>

<p>The <em>Baseline:2</em> profile for the <em>StorageService:1</em> data model is defined as the union of the <em><a href="#P.StorageService:1.Baseline:1">Baseline:1</a></em> profile and the additional requirements defined in this table.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageServiceNumberOfEntries">StorageServiceNumberOfEntries</a></td>
<td>R</td></tr></tbody></table>

<h3 id="P.StorageService:1.UserAccess:2">UserAccess:2 Profile</h3>

<p>The <em>UserAccess:2</em> profile for the <em>StorageService:1</em> data model is defined as the union of the <em><a href="#P.StorageService:1.UserAccess:1">UserAccess:1</a></em> profile and the additional requirements defined in this table.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.UserAccess.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.Enable">Enable</a></td>
<td>W</td></tr></tbody></table>

<h3 id="P.StorageService:1.GroupAccess:2">GroupAccess:2 Profile</h3>

<p>The <em>GroupAccess:2</em> profile for the <em>StorageService:1</em> data model is defined as the union of the <em><a href="#P.StorageService:1.GroupAccess:1">GroupAccess:1</a></em> profile and the additional requirements defined in this table.
The minimum REQUIRED version for this profile is StorageService:1.0.</p>

<table class="middle-width partial-border profile-requirements-table">
<colgroup>
<col style="width: 90.0%;"></col>
<col style="width: 10.0%;"></col></colgroup>
<thead>
<tr>
<th>Name</th>
<th>Requirement</th></tr></thead>
<tbody>
<tr class="object">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.">StorageService.{i}.LogicalVolume.{i}.Folder.{i}.GroupAccess.{i}.</a></td>
<td>C</td></tr>
<tr class="parameter">
<td><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.Enable">Enable</a></td>
<td>W</td></tr></tbody></table>

<hr/>

<p>Generated by <a href="https://www.broadband-forum.org">Broadband Forum</a> <a href="https://pypi.org/project/bbfreport">bbfreport</a> v2.2.0 (2024-07-23 version) on 2024-07-23 at 10:58:13 UTC.<br/>report.py –output <stdout> –format markdown tr-140-1-2-0.xml</p></div>

<div id="TOC"><h1 id="table-of-contents">Table of Contents</h1>

<ul class="collapsed expanded">
<li><a href="#data-types">Data Types</a></li>
<li><a href="#references">References</a></li>
<li><a href="#legend">Legend</a></li>
<li><span class="collapsible expandable"><a href="#storageservice12-data-model">StorageService:1.2 Data Model</a></span>

<ul class="collapsed expanded">
<li><span class="collapsible expandable"><a href="#D.StorageService:1.StorageService.">StorageService.{i}.</a></span>

<ul class="collapsed expanded ordered">
<li><a href="#D.StorageService:1.StorageService.Capabilities.">Capabilities.</a></li>
<li><a href="#D.StorageService:1.StorageService.NetInfo.">NetInfo.</a></li>
<li><a href="#D.StorageService:1.StorageService.UserGroup.">UserGroup.{i}.</a></li>
<li><a href="#D.StorageService:1.StorageService.UserAccount.">UserAccount.{i}.</a></li>
<li><a href="#D.StorageService:1.StorageService.NetworkServer.">NetworkServer.</a></li>
<li><span class="expandable"><a href="#D.StorageService:1.StorageService.FTPServer.">FTPServer.</a></span>

<ul class="collapsed">
<li><a href="#D.StorageService:1.StorageService.FTPServer.AnonymousUser.">AnonymousUser.</a></li></ul></li>
<li><a href="#D.StorageService:1.StorageService.SFTPServer.">SFTPServer.</a></li>
<li><a href="#D.StorageService:1.StorageService.HTTPServer.">HTTPServer.</a></li>
<li><a href="#D.StorageService:1.StorageService.HTTPSServer.">HTTPSServer.</a></li>
<li><a href="#D.StorageService:1.StorageService.PhysicalMedium.">PhysicalMedium.{i}.</a></li>
<li><a href="#D.StorageService:1.StorageService.StorageArray.">StorageArray.{i}.</a></li>
<li><span class="expandable"><a href="#D.StorageService:1.StorageService.LogicalVolume.">LogicalVolume.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.">Folder.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.UserAccess.">UserAccess.{i}.</a></li>
<li><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.GroupAccess.">GroupAccess.{i}.</a></li>
<li><a href="#D.StorageService:1.StorageService.LogicalVolume.Folder.Quota.">Quota.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#inform-and-notification-requirements">Inform and Notification Requirements</a></span>

<ul class="collapsed">
<li><a href="#parameters-for-which-active-notification-may-be-denied">Parameters for which Active Notification MAY be Denied</a></li></ul></li>
<li><span class="expandable"><a href="#profile-definitions">Profile Definitions</a></span>

<ul class="collapsed ordered">
<li><a href="#notation">Notation</a></li>
<li><a href="#P.StorageService:1.Baseline:1">Baseline:1 Profile</a></li>
<li><a href="#P.StorageService:1.UserAccess:1">UserAccess:1 Profile</a></li>
<li><a href="#P.StorageService:1.GroupAccess:1">GroupAccess:1 Profile</a></li>
<li><a href="#P.StorageService:1.FTPServer:1">FTPServer:1 Profile</a></li>
<li><a href="#P.StorageService:1.SFTPServer:1">SFTPServer:1 Profile</a></li>
<li><a href="#P.StorageService:1.HTTPServer:1">HTTPServer:1 Profile</a></li>
<li><a href="#P.StorageService:1.HTTPSServer:1">HTTPSServer:1 Profile</a></li>
<li><a href="#P.StorageService:1.VolumeConfig:1">VolumeConfig:1 Profile</a></li>
<li><a href="#P.StorageService:1.RAID:1">RAID:1 Profile</a></li>
<li><a href="#P.StorageService:1.FolderQuota:1">FolderQuota:1 Profile</a></li>
<li><a href="#P.StorageService:1.VolumeThresh:1">VolumeThresh:1 Profile</a></li>
<li><a href="#P.StorageService:1.NetServer:1">NetServer:1 Profile</a></li>
<li><a href="#P.StorageService:1.Baseline:2">Baseline:2 Profile</a></li>
<li><a href="#P.StorageService:1.UserAccess:2">UserAccess:2 Profile</a></li>
<li><a href="#P.StorageService:1.GroupAccess:2">GroupAccess:2 Profile</a></li></ul></li></ul></li></ul></div>
</body>
</html>
